How to replace microdrive with compactflash in Palm LifeDrive
The Palm LifeDrive uses an internal 4GB microdrive, which is partitioned into a 64MB storage heap, a 22MB "ROM" image, and a 3.73GB user volume. To the user, the 64MB appears as program & data memory and the 3.73GB as the "LifeDrive" volume. The 22MB "ROM" image is hidden. Older Palms like the Palm V used SDRAM as program & data RAM, which required power to maintain storage. If the batteries ran down, all user data & software would be lost. More recent Palms like the Palm TX use non-volatle flash memory for program & data memory, thus safeguarding against data loss if the batteries run down. The LifeDrive design utilizes a Hitachi 4GB microdrive instead of any flash memory. Namely, a 64MB partition of the microdrive is used as the program and data storage space. While this retains the advantage of non-volatile program & data storage, this introduces a slight lag occasionally during normal use, as the microdrive is spun up & down frequently to conserve power. As well, the need to spin the microdrive platter limits the battery life of the LifeDrive. Lastly, microdrives are sensitive to external shocks, and aren't as robust as flash memory. As a possible hack to improve battery life, performance and reliability, some users have attempted to replace the internal 4GB microdrive with compact flash cards. Initially, many such efforts weren't successful, as these modified LD units wouldn't boot off of a CF, even after a byte-for-byte image of the original MD was written to the CF. However, LD users on this forum thread found a successful combination of hardware and software steps that led to success. This document will describe the successful methods used in replacing the LD microdrive with a compact flash card, as well as some unsuccessful methods. Hopefully, other LD users can learn and contribute to the general body of knowledge. Materials & tools needed * a Palm LifeDrive (obviously!) * a T5 torx wrench (3/64" flat screwdriver may work too) * a compatible 4GB compact flash card * a computer with some way of to read/write CF cards, such as: ** USB CF reader ** CF to IDE adapter ** digital camera with CF slot, connected to the computer via USB * a knife (optional) * small flat head screwdriver (optional) * small pair of pliers (optional) Compatible CF cards Many CF cards do not seem to work with this procedure. Firstly, the CF will need to be 4GB, as the LifeDrive OS blindly assumes there to be 4GB. Secondly, the Palm OS will only boot successfully if the cylinder/head/sector values of the CF are "compatible" with that of the original microdrive. The Hitachi microdrive has a CHS of 7936/16/63. The SanDisk 4GB CF has been known to work, and it reports a CHS of 7940/16/63. It seems that as long as the head/sector count match, and the number of CF cylinders exceeds 7936, that's good enough for the Palm OS to boot properly. Some people have had success using fdisk in expert mode to reformat CF cards into the right CHS configuration. List of compatible CF cards People have reported success using the following cards: * Jessops 4GB * Kingston 4GB Elite Pro 45x * SanDisk 4GB (SDCFB-4096-A10) Not Compatible CF cards People have reported failure using the following cards: * Kingston 2GB Elite Pro 50x * Kingston 4GB Elite Pro 45x * Lexar 256MB (10x, 12x, 16x) * Lexar 512MB * PQI 1GB * PQI 4GB 100x * SanDisk 2GB Ultra II Quick steps Caution! Readers are warned that opening the case of their LD will void any warrantees. Mucking about with the LD in ways described in this document may ruin your LD and/or data. Take all necessary precautions, read the directions and resources thoroughly and good luck. Hot-sync your LD to backup your programs and data. Also note that hot-sync's alone do not completely backup all data on your LifeDrive volume. One way to backup the LifeDRive volume is to launch the LifeDrive Manager, right-click on the LifeDrive volume and select the Save to PC... option. If your 4GB LifeDrive volume contains a lot of files, this save may take a while. If you have your LD connected to a Linux PC, it may be useful to set your LD in Drive Mode and run the following command from Linux: :dmesg > /usr/ld-dmesg.log This will dump useful information about the microdrive of your LifeDrive, such as which /dev/* handle your Linux box connects with to your LD. In order to duplicate the microdrive onto the compact flash drive, we need to make a byte-for-byte duplicate. You cannot simply just use your operating system's copy command to do this, as you want to duplicate the boot sectors, the partition boundaries, etc instead of just the directory structure & files. The linux dd command is perfectly suited for this task. If you have Windows, it would be useful to install CygWin or some other Linux type utilities, as much of the directions in this document will use Linux commands. It is also possible to boot from a live Linux CD to gain access to Linux utilities. It's been reported that some versions of the dd utility allow you to do this: :dd --list This should show the proper addresses of your devices, such as "\\?\Device\Harddisk3\DR15". You can also use "dd for windows" from the RawWrite suite. It may also be possible to use Norton Ghost to as well. Full steps Hot-sync & backup contents of LifeDrive volume :While no one has reported catastrophic data loss from attempting this hack, why be the first? Since we are mucking around with the microdrive that contains both program data & the LifeDrive volume, you must perform a hot-sync and also backup the LifeDrive volume to your computer. This will ensure that even if you need to buy a replacement LifeDrive if you ruin this LifeDrive, your data will be safe. Disassemble LifeDrive, remove microdrive :Follow these LifeDrive disassembly instructions to remove the microdrive from the LifeDrive. Work slowly and carefully. Copy microdrive onto compact flash :Plug the microdrive into your CF reader in order to create a disk image of the microdrive. Depending on your computer, the exact steps needed to do this may vary. If you have a Windows machine, you can install CygWin to get the needed utilities. :One user has reported that their CF reader would not read/write properly unless the computer was rebooted with the CF or MD already inserted in the CF reader. A way to check if your microdrive is "seen" by your computer is at the Start, "Run...", command line, type the command "diskmgmt.msc". If you can see the patitions in the MD or Flash Disk, then you can proceed with the dd command. :Some users have reported that not all CF readers allow reading or writing of files over 2GB in size. USB CF readers seem to be more problematic that IDE to CF adapters. Linux and Windows CygWin * Insert microdrive into CF reader. * Mount the microdrive using: (note: those using Cygwin may not need this step) :: mount -f -b /dev/sda /mnt/ldmd :: Note: the input path of your CF reader may differ from /dev/sda. You may need to experiment with /dev/sdb or /dev/hda etc. * Create image of the contents of the microdrive: :: dd if=/mnt/ldmd of=/usr/ldmd-image :: Caution! Be careful with this step, because an accidental reversal of if and of parameters will result in your microdrive being overwritten! :: Depending on your CF reader's speed, this step may take an hour or more. :: This will create a 4GB /usr/ldmd-image file of your microdrive. * Unmount microdrive from filesystem: :: umount /mnt/ldmd * Unplug microdrive from PC, plug compact flash into PC * Mount the microdrive using:(note: again, those using Cygwin do not need to mount) :: mount -f -b /dev/sda /mnt/ldcf :: Note: the input path of your CF reader may differ from /dev/sda. You may need to experiment with /dev/sdb or /dev/hda etc. * Write image onto compact flash. :: dd if=/usr/ldmd-image of=/mnt/ldcf :: Depending on your CF reader's speed, this step may take several hours. * Unmount compact flash from filesystem: :: umount /mnt/ldcf Much Smaller Compressed Image File :One user reports one way to reduce the size of the image file using these different steps: *Perform a secure hard reset on the LD before disassembly. As this will completely wipe EVERYTHING from your LD, you'll want to backup everything you don't want to lose! *continue with usual directions, but create the image of the microdrive using: ::dd if=/mnt/ldmd | zip > /usr/ldmd-image.Z ::Since the vast majority of the microdrive after a hard reset is blank, the resulting compressed image file will be about 20MB *Continue with usual directions, but write image onto CF using: ::zcat /usr/ldmd-image.Z | dd of=/mnt/ldmd Mac OSX :Steps are similar to Linux steps. Here is a brief summary of differences: *Before plugging the microdrive to Mac, plug in the CF. Type: ::mount ::This should reveal the mount location of your CF reader, such as /dev/disk3s1 *Eject the CF and plug in the microdrive *OSX will suggest formatting the microdrive. Decline this offer for obvious reasons. *Use dd to copy the image to the hard disk: ::dd if=/dev/disk3 of=/ldmd.img *Take out the MD and pop in the CF. *OSX will automount it, so umount it using: ::umount /dev/disk3s1 *Use dd to write the image back to the CF: ::dd if=/ldmd.img of=/dev/disk3 *Take the CF out of the reader. Reassemble LifeDrive with compact flash card * Insert the CF into the LifeDrive's CF connector. * Reassemble the LD just enough to attempt a power up. ::Personally, I tried a power up without snapping the plastic frame back on, as I didn't want to pry it off again if I needed to redo the CF card. * Power on the LD. You may need to do a soft reset after the power on. * If the LD works with the CF, then a soft reset will complete in under 30 seconds, compared to the usual 2.5 minutes with a microdrive. * If the LD stays on the PALM screen for several minutes with a steady nonblinking LED, then it's likely that it couldn't boot properly from the CF. ::Some users reported success after doing a hard reset of the LD with the CF at this point. If the LD returns to normal operation after a hard reset, then you can recover all of your LD data by using the hot-sync and backup on your computer. Further Considerations Power consumption summary: :Hitachi MD: ::standby (head parked, platter stopped): 13mA ::idle (platter spinning): 85mA ::read: 360 mA ::write: 280 mA ::max: 372 mA :SanDisk CF: ::sleep: 1.2 mA ::read: 55 mA ::write: 70mA ::max: 100mA ::From: ::Hitachi microdrive specs ::SanDisk compact flash specs Flash memory limited writes :Flash memory has a finite number of writes per block. =See also= * LifeDrive Howtos * Howto disassemble a LifeDrive =External links= * 1src.com LifeDrive Forums ::1src.com discussion thread about CF as MD replacement, long! * Hack 'n' Dev resources :: LifeDrive HDD to CF replacement :: How to manually install Palm OS :: Various other articles/threads Category:Palm OS Category:Computer Hardware